#ifndef VEC3_H
#define VEC3_H
#include "math.h"

struct vec3
{
    double t1,t2,t3;
    vec3 (double x1=0, double x2=0, double x3=0): t1(x1),t2(x2),t3(x3) {}
    vec3 operator+(const vec3& arg) const
    {
        return vec3(t1+arg.t1, t2+arg.t2, t3+arg.t3);
    }
    vec3 operator-(const vec3& arg) const
    {
        return vec3(t1-arg.t1, t2-arg.t2, t3-arg.t3);
    }
    double operator[] (const int arg)
    {
        if (arg==1)
        {
            return t1;
        }
        else if (arg==2)
        {
            return t2;
        }
        else if (arg==3)
        {
            return t3;
        }
    }
    double norm()
    {
        return sqrt(t1*t1+t2*t2+t3*t3);
    }
};

vec3 operator* (const double t,const vec3& arg);

#endif // VEC3_H
